<!-- 使用模板渲染菜单则固定最大支持的层级数，使用函数递归则可无限级，但级数过多影响实际效果，且模板写法便于修改维护 -->
<ul id="js-nav-menu" class="nav-menu">
    {#for arr="uim.session.power._childs" key="vo" index="index"#}
    {#if uim.session.power[vo]._data.ext_data.menu && (!uim.session.power[vo]._data.ext_data.menu.has_child || uim.session.power[vo]._childs.length)#}
    {#if uim.session.power[vo]._data.ext_data.menu.has_child#}
    {#if tmp_cache(uim.session.power[vo]._data.ext_data.category)#}
    <li class="nav-title">{#uim.session.power[vo]._data.ext_data.category#}</li>
    {#/if#}
    <li cclass="{#if index == 1 #}active open{#/if#}"
        class="{#uim.session.power[vo]._data.ext_data.disabled ? 'disabled' : ''#}">
        <a href="#" title="{#uim.session.power[vo]._data.power_name#}"
            data-filter-tags="{#uim.session.power[vo]._data.power_name#}">
            {#if uim.session.power[vo]._data.ext_data.iconfont#}<i
                class="fal fa-{#uim.session.power[vo]._data.ext_data.iconfont#}"></i>{#/if#}
            <span class="nav-link-text {#vo#}"
                data-i18n="nav.application_intel">{#uim.session.power[vo]._data.power_name#}</span>
            <!-- <span class="">v4.0.2</span> -->
        </a>
        <ul>
            {#for arr="uim.session.power[vo]._childs" key="vo2" index="index2"#}
            {#if uim.session.power[vo][vo2]._data.ext_data.menu && (!uim.session.power[vo][vo2]._data.ext_data.menu.has_child || uim.session.power[vo][vo2]._childs.length)#}
            {#if uim.session.power[vo][vo2]._data.ext_data.menu.has_child#}
            <li class="{#uim.session.power[vo][vo2]._data.ext_data.disabled ? 'disabled' : ''#}">
                <a href="javascript:void(0);" title="{#uim.session.power[vo][vo2]._data.power_name#}"
                    data-filter-tags="{#uim.session.power[vo][vo2]._data.power_name#}">
                    {#if uim.session.power[vo][vo2]._data.ext_data.iconfont#}<i
                        class="fal fa-{#uim.session.power[vo][vo2]._data.ext_data.iconfont#}"></i>{#/if#}
                    <span class="nav-link-text"
                        data-i18n="nav.pages_forum">{#uim.session.power[vo][vo2]._data.power_name#}</span>
                </a>
                <ul>
                    {#for arr="uim.session.power[vo][vo2]._childs" key="vo3" index="index3"#}
                    {#if uim.session.power[vo][vo2][vo3]._data.ext_data.menu && (!uim.session.power[vo][vo2][vo3]._data.ext_data.menu.has_child || uim.session.power[vo][vo2][vo3]._childs.length)#}
                    {#if uim.session.power[vo][vo2][vo3]._data.ext_data.menu.has_child#}
                    <li class="{#uim.session.power[vo][vo2][vo3]._data.ext_data.disabled ? 'disabled' : ''#}">
                        <a href="javascript:void(0);" title="{#uim.session.power[vo][vo2][vo3]._data.power_name#}"
                            data-filter-tags="{#uim.session.power[vo][vo2][vo3]._data.power_name#}">
                            <span class="nav-link-text"
                                data-i18n="nav.pages_forum">{#uim.session.power[vo][vo2][vo3]._data.power_name#}</span>
                        </a>
                        <ul>
                            {#for arr="uim.session.power[vo][vo2][vo3]._childs" key="vo4" index="index4"#}
                            {#if uim.session.power[vo][vo2][vo3][vo4]._data.ext_data.menu && (!uim.session.power[vo][vo2][vo3][vo4]._data.ext_data.menu.has_child || uim.session.power[vo][vo2][vo3][vo4]._childs.length)#}
                            {#if uim.session.power[vo][vo2][vo3][vo4]._data.ext_data.menu.has_child#}
                            <li>
                                <a href="javascript:void(0);"
                                    title="{#uim.session.power[vo][vo2][vo3][vo4]._data.power_name#}"
                                    data-filter-tags="{#uim.session.power[vo][vo2][vo3][vo4]._data.power_name#}">
                                    <span class="nav-link-text"
                                        data-i18n="nav.pages_forum_list">不支持的菜单层级：{#[vo,vo2,vo3,vo4]#}{#console.error('不支持的菜单层级',[vo,vo2,vo3,vo4])#}</span>
                                </a>
                            </li>
                            {#else#}
                            <li
                                class="{#uim.session.power[vo][vo2][vo3][vo4]._data.ext_data.disabled ? 'disabled' : ''#}">
                                <a href="javascript:void(0);"
                                    title="{#uim.session.power[vo][vo2][vo3][vo4]._data.power_name#}"
                                    data-filter-tags="{#uim.session.power[vo][vo2][vo3][vo4]._data.power_name#}"
                                    data-view="{#[vo,vo2,vo3,vo4].join('/')#}">
                                    <span class="nav-link-text"
                                        data-i18n="nav.pages_forum_list">{#uim.session.power[vo][vo2][vo3][vo4]._data.power_name#}</span>
                                </a>
                            </li>
                            {#/if#}
                            {#/if#}
                            {#/for#}
                        </ul>
                    </li>
                    {#else#}
                    <li class="{#uim.session.power[vo][vo2][vo3]._data.ext_data.disabled ? 'disabled' : ''#}">
                        <a href="javascript:void(0);" title="{#uim.session.power[vo][vo2][vo3]._data.power_name#}"
                            data-filter-tags="{#uim.session.power[vo][vo2][vo3]._data.power_name#}"
                            data-view="{#[vo,vo2,vo3].join('/')#}">
                            {#if uim.session.power[vo][vo2][vo3]._data.ext_data.iconfont#}<i
                                class="fal fa-{#uim.session.power[vo][vo2][vo3]._data.ext_data.iconfont#}"></i>{#/if#}
                            <span class="nav-link-text"
                                data-i18n="nav.pages_forum_list">{#uim.session.power[vo][vo2][vo3]._data.power_name#}</span>
                            <!-- <span class="">v4.0.2</span> -->
                        </a>
                    </li>
                    {#/if#}
                    {#/if#}
                    {#/for#}
                </ul>
            </li>
            {#else#}
            <li class="{#uim.session.power[vo][vo2]._data.ext_data.disabled ? 'disabled' : ''#}">
                <a href="javascript:void(0);" title="{#uim.session.power[vo][vo2]._data.power_name#}"
                    data-filter-tags="{#uim.session.power[vo][vo2]._data.power_name#}"
                    data-view="{#[vo,vo2].join('/')#}">
                    {#if uim.session.power[vo][vo2]._data.ext_data.iconfont#}<i
                        class="fal fa-{#uim.session.power[vo][vo2]._data.ext_data.iconfont#}"></i>{#/if#}
                    <span class="nav-link-text"
                        data-i18n="nav.application_intel_analytics_dashboard">{#uim.session.power[vo][vo2]._data.power_name#}</span>
                    <!-- <span class="">v4.0.2</span> -->
                </a>
            </li>
            {#/if#}
            {#/if#}
            {#/for#}
        </ul>
    </li>
    {#else#}
    <!-- 无子节点的顶级菜单 -->
    {#if tmp_cache(uim.session.power[vo]._data.ext_data.category)#}
    <li class="nav-title">{#uim.session.power[vo]._data.ext_data.category#}</li>
    {#/if#}
    <li class="{#uim.session.power[vo]._data.ext_data.disabled ? 'disabled' : ''#}">
        <a href="javascript:void(0);" title="{#uim.session.power[vo]._data.power_name#}"
            data-filter-tags="{#uim.session.power[vo]._data.power_name#}" data-view="{#vo#}">
            <i class="fal fa-{#uim.session.power[vo]._data.ext_data.iconfont#}"></i>
            <span class="nav-link-text"
                data-i18n="nav.application_intel_analytics_dashboard">{#uim.session.power[vo]._data.power_name#}</span>
            <!-- <span class="">v4.0.2</span> -->
        </a>
    </li>
    {#/if#}
    {#else #}
    {#/if#}
    {#/for#}
</ul>